home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / blankery / blanker / source / blankers / moire / prefs.c < prev    next >
C/C++ Source or Header  |  1993-07-25  |  4KB  |  161 lines

  1. /*
  2.  *    Copyright (c) 1993 Michael D. Bayne.
  3.  *    All rights reserved.
  4.  *
  5.  *    Please see the documentation accompanying the distribution for distribution and disclaimer information.
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <exec/memory.h>
  10.  
  11. #include <intuition/intuition.h>
  12. #include <intuition/screens.h>
  13.  
  14. #include <libraries/gadtools.h>
  15. #include <dos/dos.h>
  16.  
  17. #include <clib/exec_protos.h>
  18. #include <clib/intuition_protos.h>
  19. #include <clib/gadtools_protos.h>
  20.  
  21. #include "Moire.h"
  22. #include "Moire_rev.h"
  23. #include "/defs.h"
  24.  
  25. struct mPrefObject {
  26.     LONG xSpeed, ySpeed, Trail, numLines, Cycle;
  27. };
  28.  
  29. VOID blank( VOID );
  30.  
  31.     struct    mPrefObject    nP;
  32. STATIC    const    UBYTE        VersTag[] = VERSTAG;
  33. extern    struct    Task        **Task;
  34. extern        ULONG        Depth, Mode;
  35. extern        UBYTE        *prefData;
  36.  
  37. VOID setMoirePrefs( VOID )
  38. {
  39.         GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, nP.Trail, 0L );
  40.         GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, nP.xSpeed, 0L );
  41.         GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, nP.ySpeed, 0L );
  42.         GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, nP.numLines, 0L );
  43.     GT_SetGadgetAttrs( MoireGadgets[GD_CYCLE], MoireWnd, 0L, GTCY_Active, nP.Cycle, 0L );
  44. }
  45.  
  46. int OKClicked( VOID )
  47. {
  48.     CopyMem( &nP, prefData, sizeof( struct mPrefObject ));
  49.     return( QUIT );
  50. }
  51.  
  52. int TESTClicked( VOID )
  53. {
  54.     *Task = FindTask( 0L );
  55.     blank();
  56.     return( CONTINUE );
  57. }
  58.  
  59. int CANCELClicked( VOID )
  60. {
  61.     return( QUIT );
  62. }
  63.  
  64. int TRAILClicked( VOID )
  65. {
  66.     nP.Trail = MoireMsg.Code;
  67.     return( CONTINUE );
  68. }
  69.  
  70. int CYCLEClicked( VOID )
  71. {
  72.     nP.Cycle = MoireMsg.Code;
  73.     return( CONTINUE );
  74. }
  75.  
  76. int XSPEEDClicked( VOID )
  77. {
  78.     nP.xSpeed = MoireMsg.Code;
  79.     return( CONTINUE );
  80. }
  81.  
  82. int YSPEEDClicked( VOID )
  83. {
  84.     nP.ySpeed = MoireMsg.Code;
  85.     return( CONTINUE );
  86. }
  87.  
  88. int NUMLINClicked( VOID )
  89. {
  90.     nP.numLines = MoireMsg.Code;
  91.     return( CONTINUE );
  92. }
  93.  
  94. int MoireVanillaKey( VOID )
  95. {
  96.     switch( MoireMsg.Code ) {
  97.     case 'o':
  98.         return( OKClicked() );
  99.     case 't':
  100.         return( TESTClicked() );
  101.     case 'c':
  102.         return( CANCELClicked() );
  103.     case 'r':
  104.         GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, ++(nP.Trail) > 256 ?
  105.             nP.Trail = 256 : nP.Trail, 0L );
  106.         return( CONTINUE );
  107.     case 'R':
  108.         GT_SetGadgetAttrs( MoireGadgets[GD_TRAIL], MoireWnd, 0L, GTSL_Level, --(nP.Trail) < 1 ?
  109.             nP.Trail = 1 : nP.Trail , 0L );
  110.         return( CONTINUE );
  111.     case 'x':
  112.         GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.xSpeed) > 64 ?
  113.             nP.xSpeed = 64 : nP.xSpeed, 0L );
  114.         return( CONTINUE );
  115.     case 'X':
  116.         GT_SetGadgetAttrs( MoireGadgets[GD_XSPEED], MoireWnd, 0L, GTSL_Level, --(nP.xSpeed) < 1 ?
  117.             nP.xSpeed = 1 : nP.xSpeed, 0L );
  118.         return( CONTINUE );
  119.     case 'y':
  120.         GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 64 ?
  121.             nP.ySpeed = 64 : nP.ySpeed, 0L );
  122.         return( CONTINUE );
  123.     case 'Y':
  124.         GT_SetGadgetAttrs( MoireGadgets[GD_YSPEED], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 1 ?
  125.             nP.ySpeed = 1 : nP.ySpeed, 0L );
  126.         return( CONTINUE );
  127.     case 'n':
  128.         GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, ++(nP.ySpeed) > 32 ?
  129.             nP.ySpeed = 32 : nP.ySpeed, 0L );
  130.         return( CONTINUE );
  131.     case 'N':
  132.         GT_SetGadgetAttrs( MoireGadgets[GD_NUMLIN], MoireWnd, 0L, GTSL_Level, --(nP.ySpeed) < 2 ?
  133.             nP.ySpeed = 2 : nP.ySpeed, 0L );
  134.         return( CONTINUE );
  135.     default:
  136.         return( CONTINUE );
  137.     }
  138. }
  139.  
  140. VOID prefs( LONG command )
  141. {
  142.     switch( command ) {
  143.     case STARTUP:
  144.         CopyMem( prefData, &nP, sizeof( struct mPrefObject ));
  145.         if( !SetupScreen() ) {
  146.             if( !OpenMoireWindow()) setMoirePrefs();
  147.             CloseDownScreen();
  148.         }
  149.         break;
  150.     case IDCMP:
  151.         if( HandleMoireIDCMP() != QUIT ) break;
  152.     case KILL:
  153.         CloseMoireWindow();
  154.     }
  155. }
  156.  
  157. LONG winSig( VOID )
  158. {
  159.     return( MoireWnd ? 1L << MoireWnd->UserPort->mp_SigBit : 0L );
  160. }
  161.